The disclosed embodiments relate to storage devices and, specifically, to systems, devices, and methods for improving latency of critical data transfers to and from storage devices.
Traditionally, storage devices employed block-based data paths and file access mechanisms. Data written to, and read from, storage devices pass through multiple layers of processing to convert a system call (e.g., a file path-based request) to a block-based command processible by the storage device. In essence, these layers translate application-layer reads/writes to block-based reads/writes understandable by the underlying storage fabric (e.g., NAND Flash).
Block-based access to storage devices provides advantages of scale. Data can be read/written in larger blocks versus bit or byte-level access. Thus, larger data items can be written in a smaller number of blocks. However, the use of block-based file access patterns negatively impacts alternative input/output (I/O) patterns.
In many devices, metadata is read/written in addition to actual data. This metadata may comprise, for example, journaling or log data to be written to the storage device. This metadata is usually small, significantly smaller than the actual data. Often, this metadata is also on the critical path of execution for a file access. That is, the metadata must be processed prior to reading/writing the actual data.
Current devices that utilize block-based processing, subject these small metadata accesses to the same block-based processing as all data. Thus the metadata is processed by multiple layers of the client devices file-handling software. This additional processing can add significant time to the latency of the request. Additionally, the additional processing is often unnecessary and unsuitable for random access reads/writes. For example, block-processing results in an approximately 10 microsecond latency time while the latency of a PCI bus is approximately 1 microsecond. When incurring this latency for critical path metadata access, the entire file access is significantly impacted as the file access must await the results of the metadata access.
Thus, there exists a need in current systems to improve the latency associated with critical path I/O such as metadata accesses.